今天主要是來詳細解釋一下 Line 訊息的一些問題。
首先只要我們對著聊天室發送訊息或按下按鈕, Line 就會觸發對應的 Action , Action 會傳送對應的 Event 到 Line 平台,接著 Line 平台再將訊息傳送至我們的後端進行處裡。
而每個訊息(Event)都有專屬的回覆用 Token ,我們需要拿到 Token 進行回復(不然主動傳訊息每個月只有500則訊息的額度,想要更多需要付費),而這個 Token 只能使用一次且30秒後會過期,因此不建議進行大量資料處裡(之後會介紹替代方案)。
而我們回傳必須回傳 Message 型態的訊息,因此這就是為什麼會有 TextMessage 跟 TextSendMessage 兩個看起來非常類似的格式了,前者是使用者發出消息回傳給後端的格式,後者是我們回覆時使用的格式。需要注意的是某些回傳的 Message 可再攜帶 Action 讓使用者操作。
而 Action 對應的 Event 大致如下表
Action =======================> Event
├── Message action ------------ MessageEvent
| ├── TextMessage
| ├── StickerMessage
| ├── ImageMessage
| ├── VideoMessage
| ├── AudioMessage
| ├── LocationMessage
| ├── * Imagemap message
| ├── * Template message
| ├── FlexMessage
| └── FileMessage
├── Postback action ----------- PostbackEvent
├── URI action
├── Datetime picker action ---- PostbackEvent
├── Camera action (Quick reply Only)
├── Camera roll action (Quick reply Only)
├── Location action (Quick reply Only)
└── Richmenu Switch Action ---- PostbackEvent
- Message action 所產生的 MessageEvent 又可細分為多種 Message
- 有些動作 (Action) 不會產生事件 (Event) ,因為有固定的動作。例如 Camera action 會開啟相機。
- 回傳皆以訊息 (Message) 進行回傳,只有某些訊息 (Message) 可包含動作 (Action) 。
- 回傳可用 list 包多個訊息 (Message) ,並一起回復,上限為5個。
動作 (Action) 的格式 - Action objects
webhook 會傳來的一些事件 (Event) 及其格式 - Webhook event object
同上 (Github 版) - Webhook event object (github)
在 1對1 或 群組中 聊天會出現的事件 (Event) - Webhook events for one-on-one chats or group chats
傳送 (包括回復) 訊息 (Message) 的方法與格式 - Messages
訊息 (Message) 類型 - Message types
訊息 (Message) 格式 - Message Objects
那麼就先到這邊,我們大致了解了 Line 平台的訊息是如何傳遞的以及各個時間的格式,明天就會開始介紹各個訊息如何使用了。
大家掰~掰~